﻿








namespace ufida.u9.ait.openapi.Proxy
{
	using System;
	using System.Collections.Generic;
	using System.Text;
	using System.IO;
	using System.ServiceModel;
	using System.Runtime.Serialization;
	using UFSoft.UBF;
	using UFSoft.UBF.Exceptions;
	using UFSoft.UBF.Util.Context;
	using UFSoft.UBF.Service;
	using UFSoft.UBF.Service.Base ;

    [System.ServiceModel.ServiceContractAttribute(Namespace = "ufida.u9.ait.openapi")]
    public interface IAPBillRevocateSV
    {
		[OperationContract()]
		ufida.u9.ait.openapi.ResultDTOData Do(UFSoft.UBF.Service.ISVContext context ,List<ufida.u9.ait.openapi.DocDTOData> data);
    }

    [Serializable]    
    public class APBillRevocateSVProxy : ServiceProxyBase//, ufida.u9.ait.openapi.Proxy.IAPBillRevocateSV
    {
	#region Fields	
				private List<ufida.u9.ait.openapi.DocDTOData> data ;
			
	#endregion	
		
	#region Properties
	
				

		/// <summary>
		/// 数据 (该属性可为空,且无默认值)
		/// 应付单收回.Misc.数据
		/// </summary>
		/// <value></value>
		public List<ufida.u9.ait.openapi.DocDTOData> Data
		{
			get	
			{	
				return this.data;
			}

			set	
			{	
				this.data = value;	
			}
		}		
			
	#endregion	


	#region Constructors
        public APBillRevocateSVProxy()
        {
        }
        #endregion
        
        #region 跨site调用
        public ufida.u9.ait.openapi.ResultDTOData Do(string targetSite)
        {
  			InitKeyList() ;
			ufida.u9.ait.openapi.ResultDTOData result = (ufida.u9.ait.openapi.ResultDTOData)InvokeBySite<ufida.u9.ait.openapi.Proxy.IAPBillRevocateSV>(targetSite);
			return GetRealResult(result);
        }
        #endregion end跨site调用

		#region 跨组织调用
        public ufida.u9.ait.openapi.ResultDTOData Do(long targetOrgId)
        {
  			InitKeyList() ;
			ufida.u9.ait.openapi.ResultDTOData result = (ufida.u9.ait.openapi.ResultDTOData)InvokeByOrg<ufida.u9.ait.openapi.Proxy.IAPBillRevocateSV>(targetOrgId);
			return GetRealResult(result);
        }
		#endregion end跨组织调用

		#region Public Method
		
        public ufida.u9.ait.openapi.ResultDTOData Do()
        {
  			InitKeyList() ;
 			ufida.u9.ait.openapi.ResultDTOData result = (ufida.u9.ait.openapi.ResultDTOData)InvokeAgent<ufida.u9.ait.openapi.Proxy.IAPBillRevocateSV>();
			return GetRealResult(result);
        }
        
		protected override object InvokeImplement<T>(T oChannel)
        {
			IContext context = ContextManager.Context;			

            IAPBillRevocateSV channel = oChannel as IAPBillRevocateSV;
            if (channel != null)
            {
			UFSoft.UBF.Service.ISVContext isvContext =  GetISVContext(context);
			return channel.Do(isvContext , data);

	    }
            return  null;
        }
		#endregion
		
		//处理由于序列化导致的返回值接口变化，而进行返回值的实际类型转换处理．
		private ufida.u9.ait.openapi.ResultDTOData GetRealResult(ufida.u9.ait.openapi.ResultDTOData result)
		{

				return result ;
		}
		#region  Init KeyList 
		//初始化SKey集合--由于接口不一样.BP.SV都要处理
		private void InitKeyList()
		{
			System.Collections.Hashtable dict = new System.Collections.Hashtable() ;
						{
				if (Data!=null)
				{
					foreach(ufida.u9.ait.openapi.DocDTOData objdata in Data)
					{
						objdata.DoSerializeKeyList(dict);
					}
				}
			}
		
		}
		#endregion 

    }
}

